package cn.cj.erp.common.utils.encrypt;

import cn.cj.erp.common.utils.Assert;

import java.nio.charset.StandardCharsets;
import java.util.Base64;

/**
 * Base64 工具类
 *
 * @author jianchen
 * @version 1.0.0
 * @date 2024/7/29
 */
public class Base64Util {
    /**
     * Base64编码
     * @param data 待编码字节数组
     * @return 编码后字符串
     */
    public static String encode(byte[] data) {
        Assert.notEmpty(data, "Invalid Base64 encode bytes");
        return new String(Base64.getEncoder().encode(data), StandardCharsets.UTF_8);
    }

    /**
     * Base64解码
     * @param str 待解码字符串
     * @return 解码后字节数组
     */
    public static byte[] decode(String str) {
        Assert.notEmpty(str, "Invalid Base64 encode string");
        return Base64.getDecoder().decode(str.getBytes(StandardCharsets.UTF_8));
    }
}